package com.workcell.workdata.xthings.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

/**
 * @Author 廖博文
 * @Date 2022/12/1 17:20
 * @Description
 */
public interface ExcelImportTemplateVo {

    @Data
    class FlowMeterVo {

        @ExcelProperty(value = "流量计ID")
        private String fmId;

        @ExcelProperty(value = "设备名称")
        private String fmName;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "测量介质")
        private String dcMeasuringMedium;

        @ExcelProperty(value = "本体材质")
        private String dcBodyMaterial;

        @ExcelProperty(value = "电极材质")
        private String dcElectrodeMaterial;

        @ExcelProperty(value = "介质温度")
        private String dcMediumTemperature;

        @ExcelProperty(value = "电源参数")
        private String dcPowerParam;

        @ExcelProperty(value = "衬里介质")
        private String dcLiningMedium;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;
    }

    @Data
    class PowerMeterVo {

        @ExcelProperty(value = "智能电表ID")
        private String pmId;

        @ExcelProperty(value = "设备名称")
        private String pmName;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "通讯方式")
        private String dcCommunicationMode;

        @ExcelProperty(value = "温度")
        private String dcTemperature;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;

        @ExcelProperty(value = "波特率")
        private String baudRate;

        @ExcelProperty(value = "通讯数据格式(0无校验1奇校验2偶校验)")
        private String commDataFormat;
    }

    @Data
    class TvBoxVo {

        @ExcelProperty(value = "电视盒子ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "设备尺寸")
        private String dcSize;

        @ExcelProperty(value = "CPU核心数")
        private String cpuCoreSize;

        @ExcelProperty(value = "运行内存")
        private String runningMemory;

        @ExcelProperty(value = "投屏协议")
        private String screenProjectionHttp;

        @ExcelProperty(value = "网口规格")
        private String networkPortSpecification;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;
    }

    @Data
    class SerialDeviceVo {
        @ExcelProperty(value = "串口设备ID")
        private String dtId;

        /**
         * 设备名称
         */
        @ExcelProperty(value = "设备名称")
        private String dtName;

        /**
         * 厂商名称
         */
        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        /**
         * 产品类型
         */
        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        /**
         * 型号
         */
        @ExcelProperty(value = "型号")
        private String dcModel;

        /**
         * 通讯方式
         */
        @ExcelProperty(value = "通讯方式")
        private String dcCommunicationMode;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "MAC地址")
        private String macAddress;

        @ExcelProperty(value = "cron表达式：默认0/30 * * * * ?")
        private String cronExpression;

        @ExcelProperty(value = "波特率：默认9600")
        private String baudRate;

        @ExcelProperty(value = "工作模式：0-无，1-TCP/UDP透传，2-HTTP传输，3-阿里云 MQTT，4-ONENET MQTT，5-百度云 MQTT，6-标准 MQTT")
        private String workingMode;

        @ExcelProperty(value = "发布主题：有线串口-Xthings/PowerMeter/{设备编码}/wd/post，4G串口-Xthings/SerialDevice4G/{设备编码}/wd/post")
        private String publishTopic;

        @ExcelProperty(value = "订阅主题：有线串口-Xthings/PowerMeter/{设备编码}/wd/post_reply，4G串口-Xthings/SerialDevice4G/{设备编码}/wd/post_reply")
        private String subscribeTopic;
    }


    @Data
    class TimeClockVo {

        @ExcelProperty(value = "打卡机ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "边缘服务器ip")
        private String ip;

        @ExcelProperty(value = "边缘服务器端口号")
        private String port;

        @ExcelProperty(value = "打卡机ip")
        private String timeClockIp;

        @ExcelProperty(value = "打卡机登录用户名")
        private String userName;

        @ExcelProperty(value = "打卡机登录密码")
        private String password;
    }

    @Data
    class CameraVo {

        @ExcelProperty(value = "摄像头ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;
    }

    @Data
    class BeltScales {

        @ExcelProperty(value = "皮带秤ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

//		@ExcelProperty(value="产品类型")
//		private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;

    }

    @Data
    class Freezer {

        @ExcelProperty(value = "冷冻机ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

//		@ExcelProperty(value="产品类型")
//		private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;

    }

    @Data
    class HeatExchangers {

        @ExcelProperty(value = "换热机ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

//		@ExcelProperty(value="产品类型")
//		private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;

    }

    @Data
    class TemperatureHumidityVo {

        @ExcelProperty(value = "温湿度计ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "产品类型")
        private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class LeveGaugeClockVo {

        @ExcelProperty(value = "液位计ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

//		@ExcelProperty(value="产品类型")
//		private String dcProductType;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;

        @ExcelProperty(value = "备注名称")
        private String alias;

        @ExcelProperty(value = "直径")
        private String diameter;

        @ExcelProperty(value = "总体积")
        private String totalVolume;
    }

    @Data
    class ValveVo {

        @ExcelProperty(value = "阀门ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class NaturalGasVo {

        @ExcelProperty(value = "天然气ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class UpperComputerVo {

        @ExcelProperty(value = "上位机ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class SmartTanksVo {

        @ExcelProperty(value = "智能罐体ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class RotaryKilnVo {

        @ExcelProperty(value = "回转窑ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class WaterMeterVo {

        @ExcelProperty(value = "法兰水表ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class VoiceSynthesisVo {
        @ExcelProperty(value = "语音合成播放ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }

    @Data
    class SoundLightAlarmVo {
        @ExcelProperty(value = "声光报警器ID")
        private String id;

        @ExcelProperty(value = "设备名称")
        private String name;

        @ExcelProperty(value = "厂商名称")
        private String manufacturer;

        @ExcelProperty(value = "型号")
        private String dcModel;

        @ExcelProperty(value = "状态")
        private String state;

        @ExcelProperty(value = "设备编号")
        private String deviceNo;

        @ExcelProperty(value = "厂商ID")
        private String manufacturerCode;

        @ExcelProperty(value = "租户ID")
        private String tenantCode;

        @ExcelProperty(value = "机器码")
        private String addressId;
    }
}
